#pragma once
#include "VertexArray.h"
#include "VertexBuffer.h"
#include "ElementBuffer.h"
#include "ADProgram.h"

enum BufferDataType
{
	VBO_DATA,
	EBO_DATA,
};

class VertexArrayRenderable :
    public VertexArray
{
protected:
	VertexBuffer m_VBO;
	ElementBuffer m_EBO;

public:
	VertexArrayRenderable() = default;
	virtual ~VertexArrayRenderable() = default;

	virtual void Draw(ADProgram& shader) = 0;

	virtual void Bind() override;
	virtual void Unbind() override;

	void SetData(BufferDataType bdType, void* data, unsigned int len, GLenum type = GL_STATIC_DRAW);
};

